1 program p10035(input, output);
\r
5 function StrToInt(const S: string): Integer;
\r
13 a, b: Array[0..9] of byte; //Arreglo de 10 posiciones puesto que los numeros tienen a lo sumo 9 digitos
\r
14 sa, sb : string; //a y b leidos como string
\r
15 la, lb : byte; //Longitud de a y de b
\r
16 i, temp, carries : integer;
\r
23 sa := copy(entrada, 1, pos(' ', entrada) - 1);
\r
24 delete(entrada, 1, pos(' ', entrada));
\r
30 procedure escribir();
\r
33 0: writeLn('No carry operation.');
\r
34 1: writeLn('1 carry operation.');
\r
37 write(carries); writeLn(' carry operations.');
\r
43 reset(input, 'input.txt');
\r
44 reset(output, 'output.txt');
\r
46 while (sa <> '0') or (sb <> '0') do //Mientras alguno de los dos sea diferente de 0
\r
48 fillChar(a, sizeof(a), 0); //lleno a y b de ceros
\r
49 fillChar(b, sizeof(a), 0);
\r
51 //convierto el numero a que està representado como una string a un arreglo de 10 posiciones.
\r
52 //Por ejemplo, el nùmero 12345 quedarìa guardado en a como {0, 0, 0, 0, 0, 1, 2, 3, 4, 5}
\r
53 for i := la downto 1 do
\r
55 a[9 -(la-i)] := StrToInt(sa[i]);
\r
57 for i := lb downto 1 do
\r
59 b[9 -(lb-i)] := StrToInt(sb[i]);
\r
62 //sumo cada posicion de a con cada posicion de b, empezando desde la derecha
\r
63 for i := 10 downto 1 do
\r
65 temp := a[i] + b[i];
\r
66 if (temp >= 10) then //si es mayor que 10 entonces "llevo" 1 a la proxima posicion a la izquierda (i - 1)
\r